package com.ny.zmb.openapi.ysutil.from.merchant;

import com.ny.zmb.openapi.ysutil.annotation.Length;
import com.ny.zmb.openapi.ysutil.annotation.NotBlank;
import com.ny.zmb.openapi.ysutil.utils.RequestNoUntil;
import com.ny.zmb.openapi.ysutil.utils.StringUtils;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 商户结算信息变更
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class MerchantChangePayment {
    /**
     * String	M	业务请求号
     */
    @NotBlank(message = "业务请求号" + "不能为空")
    @Length(max = 32, message = "业务请求号" + "长度超过" + "32" + "个字符")
    private String requestNo;
    /**
     * String	M	银盛商户号
     */
    private String merchantNo;
    /**
     * String	M	变更类型 01-银行账户(变更为结算到银行账户或更换结算银行卡) 02-平台内账户(变更为结算到平台内账户）
     */
    private String settleType;
    /**
     * String	C	银行卡类型，settleType为01时必填  11=对私借记卡，需上传银行卡（有卡号）照片  21=对公借记卡，需上传开户许可证
     */
    private String accountCardType;
    /**
     * String	C	银行账号，settleType为01时必填
     */
    private String accountNo;
    /**
     * String	C	银行户名，settleType为01时必填 仅支持同名银行卡
     */
    private String accountName;
    /**
     * String	C	开户行省，settleType为01时必填 示例值：广东省（传中文，值参考：文档下载）
     */
    private String openAccProvince;
    /**
     * String	C	开户行市，settleType为01时必填 示例值：深圳市（传中文，值参考：文档下载）
     */
    private String openAccCity;
    /**
     * String	C	开户支行编号，settleType为01时必填（传联名行号，值参考：文档下载）
     */
    private String openAccBanktype;
    /**
     * String	O	结算起始金额，单位：元 必须为正整数，最小值为1 不修改无需传值
     */
    private String lowestStlAmt;
    /**
     * String	O	银行卡图片编码，settleType为01时必填 图片上传接口返回的fileCode 对私借记卡，需上传银行卡卡号面图片 对公借记卡，需上传开户许可证图片
     * }
     */
    private String bankCardPicFront;
    public void setRequestNo(String requestNo) {
        if (StringUtils.isEmpty(requestNo)) {
            this.requestNo = RequestNoUntil.generateNumericTaskNumber();
        } else {
            this.requestNo = requestNo;
        }
    }
    public void checkRequestNo(){
        if (StringUtils.isEmpty(requestNo)) {
            this.requestNo = RequestNoUntil.generateNumericTaskNumber();
        }
    }
}

